Development and production of hydrocarbon resources (e.g., hydrocarbon reservoirs) used for oil and gas production is a highly capital intensive endeavor. Accordingly, there is great economic benefit in optimizing development and management plans for such hydrocarbon resources. However, effective development and management of hydrocarbon resources involves a large number of variables, decision points, and other parameters. For example, the development planning process for any particular reservoir often includes defining the optimal type, size, number, location, and timing of surface facilities and/or wells, how and when these facilities and/or wells should be connected, etc. The reservoir management process for any particular reservoir often includes planning optimal type, size, number, location, and timing of infill wells, determining injection and production rates at wells, etc.
Optimization of development plans and reservoir management plans is extremely difficult. In particular, the behavior of surface facilities, wells, and reservoirs themselves are represented by complex mathematical models that are solved using simulation. For example, reservoir simulators are used to model subsurface fluid flow through porous media, and thus typically include complex mathematical models representing subsurface network characteristics. For optimization processing, such simulations are embedded inside the optimization model, wherein the simulations are run for various different parameter selections to provide information with respect to the particular parameter selections providing the optimal results. For example, an optimization algorithm may invoke a simulation using selected parameter settings, analyze the simulation results, adjust the parameter settings, and again invoke the simulation.
The computational cost of solving the simulations in such optimization processing is significant. For example, an optimization problem for maximizing production may take on the order of one thousand simulations to identify the optimum parameter settings, where each simulation may require a day of computation.
Moreover, the development planning and reservoir management process typically spans a number of years, further increasing the computational costs associated with optimization processing. In particular, the parameters of such optimization problems involve a large number of decision variables (e.g., satisfying a number of hard and/or soft constraints), some of which are continuous decision variables while others may be chosen from a discrete set. The resulting optimization problems are therefore generally large scale, highly nonlinear, have continuous and integer variables, have expensive reservoir simulator models, and may have complex economics. Optimizing decisions in the development planning and/or reservoir management process with a reasonable degree of rigor is therefore highly challenging.
Several approaches have been taken by academia and industry to solve complex optimization problems. In particular, attempts have been made to solve optimization problems through the use of scenario studies, stochastic methods, and math programming methods.
In utilizing scenario studies for solving optimization problems, the user, based on prior experience and judgment, generates different combinations of optimization parameters to create several scenarios. All scenarios are evaluated, and based on the results, new scenarios may be created and evaluated. This process may continue until some criteria have been met. A disadvantage of this approach is that it relies on the user to create the scenarios. These scenarios may lead to poor results and may exclude several suitable or “good” solutions.
The use of stochastic methods (i.e., genetic algorithms, simulated annealing, tabu search) for solving optimization problems needs very little user involvement but require many function evaluations on even small problems. Function evaluations are generated randomly and are highly likely to exclude several good solutions. Moreover, stochastic methods are not typically desirable because of the large number of evaluations required.
Math programming (rigorous) methods for solving optimization problems use derivative (gradient) information to drive the simulator to an optimum. A disadvantage of this approach is that derivatives are typically not available. If derivatives are not available, a differentiable surrogate function could be used in place of the simulator. However, using surrogates alone may lead to solutions that are optimal from the context of the surrogate but infeasible or poor from the context of the simulator. Moreover, when solution time is critical, a rigorous approach using math programming methods may not be possible. A further impediment to using rigorous approaches is that a realistic (large) size problem cannot be solved using existing technology.